Tableauでデシル分析を作成してみた #tableau
はじめに
デシル分析とは
最低限の定義だけ説明すると、「あるデータを10個のグループに分けて分析する」という分析手法になります。 といっても、これだけだと、何のためにやる分析なのか謎なので、よく使用される場面をご紹介します。
顧客毎の購買金額をデシりがち
デシル分析のよくある使い方の一つとして、以下のような手法がよく用いられます。
- 顧客毎の総購買金額を出す
- 総購買金額の高い順に顧客を並べ替える(順位付けをする)
- 総購買金額の高い順から、顧客を10つのグループに分けていく。(デシる)
- どのグループが一番売上に貢献しているか(売上比率が高いか)を分析する。 ※大体は一番上位のグループが、売上のほとんどを占めているという結果になりがちです。(=パレートの法則)
本エントリも、上記の「顧客毎の購買金額」でデシってみたいと思います。
手順について
ポイント
「Tableau上で、どうやって『10等分』を表現するか」が、重要な部分となるでしょう。 (PostgreSQLだと、ntileという関数で比較的簡単に10等分できますが、Tableauではどうなのか??)
作業環境
- MacOS High Sierra 10.13.1
- Tableau 10.4.1
使用データ
- Tableau付属のサンプルスーパーストア
手順
顧客毎の総購買金額を計算する
これは、LOD関数の「FIXED」で求めることができます。 LOD関数の詳細な説明はここでは省きますが、ひとまず、特定のフィールドで固定した中で各種集計ができる、という程度にお考えください。
左上の下向き三角マークを選択し、「計算フィールドの作成」を選択します。
「売上」を、「顧客毎」に合計したいため、以下の式を作成します。
{ FIXED [顧客名] : SUM([売上])}
※この場合、本来はユニークとなるキーを指定するべきなのですが、今回は顧客IDなるものが無いため、顧客名を使用しています。
顧客毎の総購買金額を、10等分する。(10個のグループに分ける)
さて、今回のポイントとなります。 残念ながら、Tableauには、本エントリの最初の方に書いた「ntile」のような関数は、2017年11月現在存在しておりません。 その代わり、同系統のカテゴリに属する関数を使って、任意のデータを10等分するテクニックが、Tableauのナレッジベースに掲載されていたので、それを使用しましょう。 Creating a Decile of Measure Dimension | Tableau Software
Tableauには、「PERCENTILE」という関数があります。
この関数をざっくり説明すると「このデータを下から数えて、○○%の位置のデータを取得しろ」というものです。
例えば、{PERCENTILE([売上], .1)}
と書いた場合、「売上」の10%部分に位置する値を取得します。
この関数を使用すれば、○○%に当たる位置を取得することができます。その位置をしきい値として扱い、顧客毎の購買金額を10個のグループに振り分けましょう。
以下の計算式を作成します。
IF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .1) } THEN "デシル10" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .2) } THEN "デシル9" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .3) } THEN "デシル8" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .4) } THEN "デシル7" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .5) } THEN "デシル6" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .6) } THEN "デシル5" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .7) } THEN "デシル4" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .8) } THEN "デシル3" ELSEIF[顧客毎の購買金額] <= {PERCENTILE([顧客毎の購買金額], .9) } THEN "デシル2" ELSE "デシル1" END
顧客毎の購買金額における、○○%部分の位置を取得し、それより大きいか小さいかをIF文で判断し、グループに振り分けています。
ビジュアライゼーションする
後は、作成した計算フィールド項目を行列に配置していくのみです。
「デシル」と「顧客毎の購買金額」を配置します。
これで、デシル分析の基本形となるVizが完成しました。
これができれば、後は煮るなり焼くなり…という感じですね。 ラベルを付与したり、二重軸で累計積み上げの折れ線グラフを足してパレート図にしてもいいですね。
おわりに
今回は、意外(?)と必要とされがちのデシル分析について見てきました。 ここから、高額購買者と低額購買者の購買物の差をみたり等、色々と考えることができると思います。逆に、デシル分析”だけ”を見ても、劇的な効果を発揮するわけではないので、他の分析と組み合わせて使用してみてください。
もうすぐ単身赴任が終わり、自宅のある奈良に帰ろうとしています。 奈良オフィスできないかなあ…(奈良で働きたい人がいたら、実現する可能性が!?)(果たしているのか??)